// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc
package com.loopj.android.http;
import android.util.Log;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.HttpResponseException;
import org.apache.http.client.methods.HttpUriRequest;
// Referenced classes of package com.loopj.android.http:
// FileAsyncHttpResponseHandler
public abstract class RangeFileAsyncHttpResponseHandler extends FileAsyncHttpResponseHandler
{
private static final String b = "RangeFileAsyncHttpResponseHandler";
private long c;
private boolean d;
public RangeFileAsyncHttpResponseHandler(File file)
{
super(file);
c = 0L;
d = false;
}
protected byte[] getResponseData(HttpEntity httpentity)
{
InputStream inputstream;
long l;
FileOutputStream fileoutputstream;
if (httpentity == null)
{
break MISSING_BLOCK_LABEL_152;
}
inputstream = httpentity.getContent();
l = httpentity.getContentLength() + c;
fileoutputstream = new FileOutputStream(getTargetFile(), d);
if (inputstream == null)
{
break MISSING_BLOCK_LABEL_152;
}
byte abyte0[] = new byte[4096];
_L1:
int i;
if (c >= l)
{
break MISSING_BLOCK_LABEL_138;
}
i = inputstream.read(abyte0);
if (i == -1)
{
break MISSING_BLOCK_LABEL_138;
}
if (Thread.currentThread().isInterrupted())
{
break MISSING_BLOCK_LABEL_138;
}
c = c + (long)i;
fileoutputstream.write(abyte0, 0, i);
sendProgressMessage((int)c, (int)l);
goto _L1
Exception exception;
exception;
inputstream.close();
fileoutputstream.flush();
fileoutputstream.close();
throw exception;
inputstream.close();
fileoutputstream.flush();
fileoutputstream.close();
return null;
}
public void sendResponseMessage(HttpResponse httpresponse)
{
if (Thread.currentThread().isInterrupted()) goto _L2; else goto _L1
_L1:
StatusLine statusline = httpresponse.getStatusLine();
if (statusline.getStatusCode() != 416) goto _L4; else goto _L3
_L3:
if (!Thread.currentThread().isInterrupted())
{
sendSuccessMessage(statusline.getStatusCode(), httpresponse.getAllHeaders(), null);
}
_L2:
return;
_L4:
if (statusline.getStatusCode() < 300)
{
continue; /* Loop/switch isn't completed */
}
if (Thread.currentThread().isInterrupted()) goto _L2; else goto _L5
_L5:
sendFailureMessage(statusline.getStatusCode(), httpresponse.getAllHeaders(), null, new HttpResponseException(statusline.getStatusCode(), statusline.getReasonPhrase()));
return;
if (Thread.currentThread().isInterrupted()) goto _L2; else goto _L6
_L6:
Header header = httpresponse.getFirstHeader("Content-Range");
if (header == null)
{
d = false;
c = 0L;
} else
{
Log.v("RangeFileAsyncHttpResponseHandler", (new StringBuilder()).append("Content-Rnage: ").append(header.getValue()).toString());
}
sendSuccessMessage(statusline.getStatusCode(), httpresponse.getAllHeaders(), getResponseData(httpresponse.getEntity()));
return;
}
public void updateRequestHeaders(HttpUriRequest httpurirequest)
{
if (mFile.exists() && mFile.canWrite())
{
c = mFile.length();
}
if (c > 0L)
{
d = true;
httpurirequest.setHeader("Range", (new StringBuilder()).append("bytes=").append(c).append("-").toString());
}
}
}